from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

# 设置 ChromeDriver 路径（推荐使用 Service 对象）
service = Service('chromedriver.exe')

# 创建浏览器选项
options = webdriver.ChromeOptions()
options.add_argument('--disable-blink-features=AutomationControlled')  # 隐藏自动化标志

# 创建浏览器对象
browser = webdriver.Chrome(service=service, options=options)

try:
    # 访问百度
    browser.get('https://www.baidu.com')

    # 使用显式等待代替固定等待
    wait = WebDriverWait(browser, 10)

    # 定位搜索框并输入
    search_box = wait.until(EC.presence_of_element_located((By.ID, 'chat-textarea')))
    search_box.send_keys('周杰伦')

    # 定位搜索按钮并点击
    search_button = wait.until(EC.element_to_be_clickable((By.ID, 'chat-submit-button')))
    search_button.click()

    # 滚动到页面底部
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    time.sleep(1)  # 滚动后短暂等待

    # 点击下一页（使用更健壮的等待和定位）
    next_page = wait.until(
        EC.element_to_be_clickable((By.XPATH, '//div/a[@class="n "]'))
    )
    next_page.click()

    # 页面导航操作
    time.sleep(4)
    browser.back()
    time.sleep(4)
    browser.forward()

finally:
    # 确保浏览器最终会被关闭
    time.sleep(4)
